﻿namespace Preactor.ObjectModel.Interfaces.MaterialControl
{
    public interface IPeggingRule : IPreactorRecord
    {
        string BelongsToRuleSet { get; set; }

        int Number { get; set; }

        string RuleSet { get; set; }

        bool ClearCurrentLinks { get; set; }

        bool FirstPassClear { get; set; }

        string Rule { get; set; }

        bool Enabled { get; set; }

        bool DebugThisRule { get; set; }

        bool InternalSupplyOnly { get; set; }

        string InternalSuppyQueueFilter { get; set; }

        bool ExternalSupplyQueueFilterToggle { get; set; }

        string ExternalSupplyQueueFilter { get; set; }

        bool SupplyQueueRankingToggle { get; set; }

        bool InheritFromSupply { get; set; }

        bool InternalDemandOnly { get; set; }

        bool IncludeScheduledOrdersInDemandQueue { get; set; }

        string InternalDemandQueueFilter { get; set; }

        string ExternalDemandQueueFilter { get; set; }

        bool DemandQueueRankingToggle { get; set; }

        bool InheritFromDemand { get; set; }

        bool InheritFromDemandToggle { get; set; }

        bool InheritFromSupplyToggle { get; set; }

        string RuleType { get; set; }

        bool UserDefinedRuleToggle { get; set; }

        string Expression { get; set; }

        bool PespScriptToggle { get; set; }

        string PespScript { get; set; }

        bool AllocateMultiplesOnly { get; set; }

        bool RetainPartialAndCompleteAllocations { get; set; }

        bool RetainAllocations { get; set; }

        bool RetainCompleteAllocations { get; set; }

        bool AllowBackwardLinks { get; set; }
    }
}